<?php
/**
 * Controlador CRUD de Imagens relacionadas a uma tabela
 * @author Emanuel Melo @ PC4 Team
 * @package PC4_Controlador
 */
class PC4_Controlador_APP_CRUD_Fotos extends PC4_Controlador_APP_CRUD {
	
	protected $campoRelacionado;
		
	/**
	 * Inicializa os parâmetros do controlador
	 * @param object $modelo
	 * @param string $campoRelacionado - a chave estrangeira da tabela principal
	 * @param $formView
	 * @param $listaView
	 * @param $editaView
	 * @param $nomeSecao
	 */
	protected function init($modelo = '', $campoRelacionado = 'id_galerias', $formView = 'admin/fotos', $listaView = '', $editaView = '', $nomeSessao = 'usuarios', $urlLogin = 'admin/login/', $urlProibido = 'admin/main/proibido'){
		if (empty($modelo)) {
			$modelo = new PC4_Crud_Foto(FCPATH . 'arquivos');
		}
		parent::init($modelo, $formView, $listaView, $editaView, $nomeSessao, $urlLogin, $urlProibido);
		$this->campoRelacionado = $campoRelacionado;

		$this->layout->addCSS('galeria_fotos');
		$this->layout->addJS('jquery.multifile/jquery.form.js');
		$this->layout->addJS('jquery.multifile/jquery.MetaData.js');
		$this->layout->addJS('jquery.multifile/jquery.MultiFile.js');
		$this->layout->addJS('jquery.multifile/jquery.blockUI.js');
	}
	
	function index() {
		$campo = $this->campoRelacionado;
		$this->lista($this->controller_session->$campo, 1, -1);
	}

	public function lista($id_galeria, $pagina = 1, $limite = 30) {
		$campo = $this->campoRelacionado;
		$this->db->where($campo . ' = ' . $id_galeria);
		$this->dados[$campo] = $id_galeria;
		$this->dados['nomeFK'] = $campo;
		$this->dados['valorFK'] = $id_galeria;
		$this->controller_session->$campo = $id_galeria;
		
		parent::lista($pagina, $limite);
//d($this->dados['rs']);
	}
	
	public function trataEdita($id) {
		$this->layout->view = 'blank';
		$campos = parent::trataForm();	
		$this->modelo->edita($campos, $id);
//		parent::trataEdita($id);
	}
	
	function trataNovo() {
		$campos = $this->trataForm();
		$retorno = $this->modelo->insereVarios($campos);
		$this->resultadoNovo(reset($retorno));
	}
	
	protected function trataForm() {
//d($_FILES);
		$campos[$this->campoRelacionado] = $_POST[$this->campoRelacionado];
		$campos['campo_arquivo'] = 'fileX';
		return $campos;
	}
	
}
?>